From: Daniel van Vugt Date: Tue, 23 Sep 2025 06:12:56 +0000 (+0800) Subject: slider: Use the sprite of the touch event, not the pointer X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~80^2^2~24 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e54aa588c1604b63e2f051e20c1ecb3e601beb5c;p=gnome-shell.git slider: Use the sprite of the touch event, not the pointer startDragging() starts with: const sprite = backend.get_sprite(global.stage, event); this._sprite = sprite; but then vfunc_touch_event() would only compare this._sprite to: sprite = backend.get_pointer_sprite(global.stage); which never matched. And so _endDragging() was never called and the grab was never dismissed, effectively freezing the shell. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8660 Fixes: c206ec693 ("slider: Use Clutter.Sprite for pointing focus accounting") Part-of: --- diff --git a/js/ui/slider.js b/js/ui/slider.js index 2cf5f145b..05861b56f 100644 --- a/js/ui/slider.js +++ b/js/ui/slider.js @@ -132,7 +132,7 @@ export const Slider = GObject.registerClass({ vfunc_touch_event(event) { const backend = global.stage.get_context().get_backend(); - const sprite = backend.get_pointer_sprite(global.stage); + const sprite = backend.get_sprite(global.stage, event); if (!this._dragging && event.type() === Clutter.EventType.TOUCH_BEGIN) {